﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FeiYang
{
    public class 头目_: 怪物_
    {
        public 头目_(string 名称, 怪物属性_ 属性, byte 等级) : base(名称, 属性, 等级)
        {
            this.位置 = null;
        }

        public 头目_(string 名称, 地图点_ 位置): this(名称, 怪物属性_.头目_, 50)
        {
            this.位置 = 位置;
        }
        public 地图点_ 位置 { get; set; }
    }

    public class Boss_ : 头目_
    {
        public Boss_(string 名称, _Boss表项_ boss表项) : base(名称, 怪物属性_.Boss, 100)
        {
            this.表项 = boss表项;
            this.位置 = 地图_.所有Boos点[(int)boss表项];
            this.位置.所在地图.添加Boss_(this);
        }
        public _Boss表项_ 表项 { get; set; }
        public Boss提醒_ 刷新提醒
        {
            get
            {
                return Boss刷新表_.表[(int)this.表项];
            }
        }
    }


    static class 怪物列表_
    {
        static Dictionary<string, 怪物_> 怪物列表 = new Dictionary<string, 怪物_> {
            {"幽魂", new 怪物_("幽魂", 0, 0)},
            {"火烈鸟", new 怪物_("火烈鸟", 0, 0)},
            {"地火兽骑将", new 怪物_("地火兽骑将", 0, 0)},
            {"地火兽弓箭手", new 怪物_("地火兽弓箭手", 0, 0)},
            {"地火兽投矛手", new 怪物_("地火兽投矛手", 0, 0)},
            {"炎魔", new 怪物_("炎魔", 0, 0)},
            {"魔眼", new 怪物_("魔眼", 0, 0)},
            {"魔斗士", new 怪物_("魔斗士", 0, 0)},
            {"猛魔刀斧手", new 怪物_("猛魔刀斧手", 0, 0)},
            {"鬼方火卒", new 怪物_("鬼方火卒", 0, 0)},
            {"猛魔枪卒", new 怪物_("猛魔枪卒", 0, 0)},
            {"猛魔统领", new 怪物_("猛魔统领", 0, 0)},
            {"猛魔头目", new 怪物_("猛魔头目", 0, 0)},
            {"幽影武士", new 怪物_("幽影武士", 0, 0)},
            {"猛魔将军", new 怪物_("猛魔将军", 0, 0)},
            {"猛魔统帅", new 怪物_("猛魔统帅", 0, 0)},
            {"地火兽弓箭手头目", new 怪物_("地火兽弓箭手头目", 0, 0)},
            {"炎魔头目", new 怪物_("炎魔头目", 0, 0)},
            {"幽影武士头目", new 怪物_("幽影武士头目", 0, 0)},
            {"魔眼头目", new 怪物_("魔眼头目", 0, 0)},
            {"魔斗士头目", new 怪物_("魔斗士头目",  怪物属性_.头目_, 0)},
            {"铁血魔王", new 怪物_("铁血魔王",  怪物属性_.Boss, 0)},
            {"牛", new 怪物_("牛", 0, 0)},
            {"鹿", new 怪物_("鹿", 0, 0)},
            {"稻草人", new 怪物_("稻草人", 0, 0)},
            {"大蟒蛇", new 怪物_("大蟒蛇", 0, 0)},
            {"大土蛇", new 怪物_("大土蛇", 0, 0)},
            {"巨猿", new 怪物_("巨猿", 0, 0)},
            {"毒蜘蛛", new 怪物_("毒蜘蛛", 0, 0)},
            {"食人花", new 怪物_("食人花", 0, 0)},
            {"蟾蜍", new 怪物_("蟾蜍", 0, 0)},
            {"洞蛆", new 怪物_("洞蛆", 0, 0)},
            {"僵尸", new 怪物_("僵尸", 0, 0)},
            {"蝎子", new 怪物_("蝎子", 0, 0)},
            {"蝙蝠", new 怪物_("蝙蝠", 0, 0)},
            {"尸卫", new 怪物_("尸卫", 0, 0)},
            {"尸卫勇士", new 怪物_("尸卫勇士", 0, 0)},
            {"掷枪尸卫", new 怪物_("掷枪尸卫", 0, 0)},
            {"尸卫战将", new 怪物_("尸卫战将", 0, 0)},
            {"铜人", new 怪物_("铜人", 0, 0)},
            {"青铜兽", new 怪物_("青铜兽", 0, 0)},
            {"滚刀手", new 怪物_("滚刀手", 0, 0)},
            {"石人", new 怪物_("石人", 0, 0)},
            {"铜锤手", new 怪物_("铜锤手", 0, 0)},
            {"圣甲虫", new 怪物_("圣甲虫", 0, 0)},
            {"魔甲虫", new 怪物_("魔甲虫", 0, 0)},
            {"红蛇妖", new 怪物_("红蛇妖", 0, 0)},
            {"黑蛇妖", new 怪物_("黑蛇妖", 0, 0)},
            {"白蛇妖", new 怪物_("白蛇妖", 0, 0)},
            {"三头蛇", new 怪物_("三头蛇", 0, 0)},
            {"白蚁", new 怪物_("白蚁", 0, 0)},
            {"蚁巢", new 怪物_("蚁巢", 0, 0)},
            {"红蛇妖头目", new 怪物_("红蛇妖头目", 0, 0)},
            {"黑蛇妖头目", new 怪物_("黑蛇妖头目", 0, 0)},
            {"白蛇妖头目", new 怪物_("白蛇妖头目", 0, 0)},
            {"守护者", new 怪物_("守护者", 0, 0)},
            {"守护者宝宝", new 怪物_("守护者宝宝", 0, 0)},
            {"黄金魔斗士", new 怪物_("黄金魔斗士", 0, 0)},
            {"地下小鬼", new 怪物_("地下小鬼", 0, 0)},
            {"逆魔弓箭手", new 怪物_("逆魔弓箭手", 0, 0)},
            {"逆魔雕像", new 怪物_("逆魔雕像", 0, 0)},
            {"逆魔卫士", new 怪物_("逆魔卫士", 0, 0)},
            {"逆魔侍卫", new 怪物_("逆魔侍卫", 0, 0)},
            {"调皮小鬼", new 怪物_("调皮小鬼", 0, 0)},
            {"地狱奴", new 怪物_("地狱奴", 0, 0)},
            {"铁翼魔", new 怪物_("铁翼魔", 0, 0)},
            {"血妖", new 怪物_("血妖", 0, 0)},
            {"藤妖", new 怪物_("藤妖", 0, 0)},
            {"毒妖", new 怪物_("毒妖", 0, 0)},
            {"刺魔", new 怪物_("刺魔", 0, 0)},
            {"血魔", new 怪物_("血魔", 0, 0)},
            {"妖力士", new 怪物_("妖力士", 0, 0)},
            {"幽灵虫母", new 怪物_("幽灵虫母", 0, 0)},
            {"幽灵虫", new 怪物_("幽灵虫", 0, 0)},
            {"兽骑兵", new 怪物_("兽骑兵", 0, 0)},
            {"兽骑统领", new 怪物_("兽骑统领", 0, 0)},
            {"招魂使", new 怪物_("招魂使", 0, 0)},
            {"烈焰使", new 怪物_("烈焰使", 0, 0)},
            {"暗影修罗", new 怪物_("暗影修罗", 0, 0)},
            {"魔神修罗", new 怪物_("魔神修罗", 0, 0)},
            {"黑袍修罗", new 怪物_("黑袍修罗", 0, 0)},
            {"黑袍修罗长老", new 怪物_("黑袍修罗长老", 0, 0)},
            {"通天教主", new 怪物_("通天教主", 0, 0)},
            {"禁地魔王", new 怪物_("禁地魔王", 0, 0)},
            {"闪电魔", new 怪物_("闪电魔", 0, 0)},
            {"利爪魔", new 怪物_("利爪魔", 0, 0)},
            {"三头蛇王", new 怪物_("三头蛇王", 0, 0)},
            {"机关巨兽", new 怪物_("机关巨兽", 0, 0)},
            {"逆魔", new 怪物_("逆魔", 0, 0)},
            {"尸霸", new 怪物_("尸霸", 0, 0)},
            {"幸运雪人", new 怪物_("幸运雪人", 0, 0)},
            {"炼狱魔君", new 怪物_("炼狱魔君", 0, 0)},
            {"教主座骑", new 怪物_("教主座骑", 0, 0)},
            {"暗之禁地魔王", new 怪物_("暗之禁地魔王", 0, 0)},
            {"暗之蛇妖王", new 怪物_("暗之蛇妖王", 0, 0)},
            {"暗之逆魔之王", new 怪物_("暗之逆魔之王", 0, 0)},
            {"蛇妖王", new 怪物_("蛇妖王", 0, 0)},
            {"逆魔之王", new 怪物_("逆魔之王", 0, 0)},
            {"狂尸霸", new 怪物_("狂尸霸", 0, 0)},
            {"血域禁地魔王", new 怪物_("血域禁地魔王", 0, 0)},
            {"超级通天教主", new 怪物_("超级通天教主", 0, 0)},
            {"寒荒海兽", new 怪物_("寒荒海兽", 0, 0)},
            {"楼兰王", new 怪物_("楼兰王", 0, 0)},
            {"千年帝王", new 怪物_("千年帝王", 0, 0)},
            {"传世宝宝", new 怪物_("传世宝宝", 0, 0)},
            {"沙鱼王", new 怪物_("沙鱼王", 0, 0)},
            {"食人花王", new 怪物_("食人花王",  怪物属性_.头目_, 0)},
            {"狼王", new 怪物_("狼王", 0, 0)},
            {"招财猪", new 怪物_("招财猪", 0, 0)},
            {"幸运兔", new 怪物_("幸运兔", 0, 0)},
            {"进宝牛", new 怪物_("进宝牛", 0, 0)},
            {"铜人头目", new 怪物_("铜人头目", 怪物属性_.头目_, 0)},
            {"石人头目", new 怪物_("石人头目",  怪物属性_.头目_, 0)},
            {"地下小鬼头目", new 怪物_("地下小鬼头目",  怪物属性_.头目_, 0)},
            {"逆魔卫士头目", new 怪物_("逆魔卫士头目",  怪物属性_.头目_, 0)},
            {"逆魔雕像头目", new 怪物_("逆魔雕像头目",  怪物属性_.头目_, 0)},
            {"血魔头目", new 怪物_("血魔头目", 怪物属性_.头目_, 0)},
            {"铁翼魔头目", new 怪物_("铁翼魔头目",  怪物属性_.头目_, 0)},
            {"兽骑兵头目", new 怪物_("兽骑兵头目",  怪物属性_.头目_, 0)},
            {"兽骑统领头目", new 怪物_("兽骑统领头目",  怪物属性_.头目_, 0)},
            {"魔神修罗头目", new 怪物_("魔神修罗头目",  怪物属性_.头目_, 0)},
            {"黑袍修罗王", new 怪物_("黑袍修罗王",  怪物属性_.头目_, 0)},
            {"树", new 怪物_("树", 0, 0)},
            {"尸王", new 怪物_("尸王", 0, 0)},
            {"金刚人", new 怪物_("金刚人", 0, 0)},
            {"月兔", new 怪物_("月兔", 0, 0)},
            {"雪人", new 怪物_("雪人", 0, 0)},
            {"阿修罗神", new 怪物_("阿修罗神",  怪物属性_.Boss, 0)},
            {"武馆教头", new 怪物_("武馆教头",  怪物属性_.Boss, 0)},
            {"大师兄", new 怪物_("大师兄",  怪物属性_.Boss, 0)},
            {"小师弟", new 怪物_("小师弟",  怪物属性_.Boss, 0)}
        };
        public static void 添加怪物(List<怪物_> 怪物)
        {
            添加怪物(怪物.ToArray());
        }
        public static void 添加怪物(怪物_[] 怪物)
        {
            for (int i = 0; i < 怪物.Length; i++)
            {
                怪物列表.Add(怪物[i].名称, 怪物[i]);
            }
        }
        public static void 添加怪物(怪物_ 怪物)
        {
            怪物列表.Add(怪物.名称, 怪物);
        }
        public static bool 具有怪物(string 名称)
        {
            return 怪物列表.ContainsKey(名称);
        }
        public static 怪物_ 获取怪物(string 名称)
        {
            怪物列表.TryGetValue(名称, out 怪物_ 值);
            return 值;
        }
    }
}
